/*
 *  Target.h
 *  glare
 *
 *  Created by sunjun on 11-6-14.
 *  Copyright 2011 sunstdio. All rights reserved.
 *
 */

//////////////////////////////////////////////////////////////////////////

#ifndef __Target__
#define __Target__

//////////////////////////////////////////////////////////////////////////

#if defined __cplusplus

//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN(Engine)

//////////////////////////////////////////////////////////////////////////

	// this class provides an object-oriented Target interface.
	class Target : public GReference
	{
  public:
		// constructor
		Target(const TextureData* color, const TextureData* depth = NULL);
		
		// destructor
		virtual ~Target();

    // bind the target
    VOID Bind();

  private:
    HANDLE mHandle;

  private:friend class Primitive;
	};

  //////////////////////////////////////////////////////////////////////////

  typedef GPtr<Target>TargetPtr;

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////

#endif // __cplusplus

//////////////////////////////////////////////////////////////////////////

#endif // __Target__

//////////////////////////////////////////////////////////////////////////